home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / The World of Computer Software.iso / faq-s.zip / NUV.PAS < prev    next >
Pascal/Delphi Source File  |  1991-04-13  |  7KB  |  242 lines

  1. {$R-,S-,I-,D-,F+,V-,B-,N- }
  2. {$M 65500,0,0 }
  3.  
  4. unit nuv;
  5.  
  6. interface
  7.  
  8. uses crt,gentypes,modem,configrt,gensubs,userret,subs1,subs2,textret,flags,mainr1;
  9.  
  10. procedure nuvit;
  11. procedure newvotex;
  12.  
  13. implementation
  14.  
  15. var cnt,cnt1:integer;
  16.  
  17. procedure nuvit;
  18. var n,x:integer;
  19.       u:userrec;
  20. begin
  21.          for n:=1 to numusers do begin
  22.          seek (ufile,n);
  23.          read (ufile,u);
  24.          for x:=1 to 50 do
  25.          u.newvoteit[x]:=0;
  26.          writeufile (u,n);
  27.          end;
  28.          readurec;
  29. end;
  30.  
  31. procedure newvotex;
  32. var u:userrec;
  33.     q,n:integer;
  34.     c:char;
  35.     unum2:integer;
  36.     cv,alv:boolean;
  37.  
  38.   procedure look;
  39.   var cntz:integer;
  40.    begin
  41.    cnt1:=0;
  42.    alv:=false;
  43.    for cntz:=1 to 50 do begin
  44.     if urec.newvoteit[cntz]=n then begin
  45.      alv:=true;
  46.      cntz:=50;
  47.      end;
  48.     end;
  49.    end;
  50.  
  51.   procedure showuser;
  52.   begin
  53.     look;
  54.     if not alv then begin
  55.     writeln;
  56.  if (ansigraphics in urec.config) then
  57.  write (#27+'[2J') else
  58.  write (^L);
  59. writeln(^P'┌──────────────┤'^R'FAQ New User Voting'^P'├──────────────┐');
  60. write  (^P'│'^R'Handle'^P': ');
  61. tab (^S+u.handle,{33}42); writeln (^P'│');
  62. writeln(^P'├─────────────────────────────────────────────────┤');
  63. write  (^P'│'^R'# of Yes Votes   '^P' : ');
  64. tab (^S+strr(u.newvoteyes),{21}30); writeln (^P'│');
  65. write  (^P'│'^R'# of No Votes    '^P' : ');
  66. tab (^S+strr(u.newvoteno),{21}30); writeln (^P'│');
  67. write  (^P'│'^R'# to be Validated'^P' : ');
  68. tab (^S+strr(valnu),{21}30); writeln (^P'│');
  69. write  (^P'│'^R'# to be Deleted  '^P' : ');
  70. tab (^S+strr(delnu),{21}30); writeln (^P'│');
  71. write  (^P'│'^R'# Yes Votes Needed'^P': ');
  72. tab (^S+strr(valnu-u.newvoteyes),{21}30); writeln (^P'│');
  73. write  (^P'│'^R'# No Votes Needed '^P': ');
  74. tab (^S+strr(delnu-u.newvoteno),{21}30); writeln (^P'│');
  75. writeln(^P'└─────────────────────────────────────────────────┘');
  76. writeln;
  77. writestr (^P'Vote on this user? [y/n]: '^U'*');
  78.     if not yes then alv:=true;
  79.     if not alv then begin
  80.     writestr (^P'Display '+u.handle+'''s infoform? '^U'*');
  81.     if yes then begin {lookinfo(u.handle)} showinfoform(u.handle, 5);
  82.     pause;
  83.      end;
  84.     end;
  85.     end;
  86.     repeat
  87.     if alv then input:='A' else begin
  88.     buflen:=1;
  89.     write(^M^R'Vote on '^S+u.handle+^P': '^S'Y'^R'es  '^S'N'^R'o  '^S'A'^R'bstain');
  90.     if issysop then write (^S'  '^S'V'^R'eto');
  91.     writestr(^S'  CR'^P'/'^R'Abstain'^P': '^S'*');
  92.     end;
  93.     if (length(input)<1) then input:=('A');
  94.     input:=upstring(input[1]);
  95.     case input[1] of
  96.     'Y':begin
  97.          cv:=false;
  98.          cnt:=0;
  99.          seek (ufile,n);
  100.          u.newvoteyes:=u.newvoteyes+1;
  101.          while cnt<=50 do begin
  102.          if urec.newvoteit[cnt]=0 then begin
  103.          urec.newvoteit[cnt]:=n;
  104.          cnt:=50;
  105.          if (u.newvoteyes>=valnu) and (autonuv)
  106.          then begin
  107.          u.level:=volvl;
  108.          u.udlevel:=voflvl;
  109.          u.udpoints:=vofps;
  110.          u.note:='NUV Validated';
  111.          writeufile (u,n);
  112.          nuvit;
  113.          Writeln('User has been auto-validated.');
  114.          end
  115.          else
  116.          Writeln ('Vote: Yes, Answer Entered.');
  117.          cv:=true;
  118.          end;
  119.          cnt:=cnt+1;
  120.          end;
  121.          nnu:=nnu-1;
  122.         end;
  123.  
  124.     'N':begin
  125.          cv:=false;
  126.          cnt:=0;
  127.          seek (ufile,n);
  128.          u.newvoteno:=u.newvoteno+1;
  129.          while cnt<=50 do begin
  130.          if urec.newvoteit[cnt]=0 then begin
  131.          urec.newvoteit[cnt]:=n;
  132.          cnt:=50;
  133.          if (u.newvoteno>=delnu) and (autonuv)
  134.          then begin
  135.          u.level:=-1;
  136.          u.note:='NUV Deleted';
  137.          writeufile (u,n);
  138.          nuvit;
  139.          Writeln('User has been auto-deleted.');
  140.          end
  141.          else
  142.          Writeln ('Vote: No, Answer Entered.');
  143.          cv:=true;
  144.          end;
  145.          cnt:=cnt+1;
  146.          end;
  147.          nnu:=nnu-1;
  148.          end;
  149.  
  150.     'A':begin
  151.          cv:=false;
  152.          if not alv then begin
  153.          writeln ('Vote: Abstain, Thank You!');
  154.          end;
  155.          cv:=true;
  156.          end;
  157.     'V':if issysop then begin
  158.         writestr (^S'V'^R'alidate or '^S'D'^R'elete'^P': '^U'*');
  159.         c:=upcase (input[1]);
  160.         case c of
  161.         'V':begin
  162.          u.level:=volvl;
  163.          u.udlevel:=voflvl;
  164.          u.udpoints:=vofps;
  165.          u.note:='NUV Validated';
  166.          writeufile (u,n);
  167.          cnt:=cnt+1;
  168.          nnu:=nnu-1;
  169.          nuvit;
  170.          writeln ('User has been validated.'); end;
  171.         'D':begin
  172.          u.level:=-1;
  173.          u.note:='NUV Deleted';
  174.          writeufile (u,n);
  175.          nuvit;
  176.          cnt:=cnt+1;
  177.          nnu:=nnu-1;
  178.          writeln ('User has been deleted.'); end;
  179.      end; end;
  180.     end;{case}
  181.    until cv;
  182.   end;{showuser}
  183.  
  184. begin
  185.   writehdr ('New User Voting');
  186. if urec.level<newvotelvl then exit;
  187.   if (nnu<1) then begin
  188.   Writeln ('No new users on NUV list.');
  189.   end;
  190.   repeat
  191.   q:=menu ('New User Voting','NUV','VLQ?');
  192.   writeln;
  193.   case q of
  194.   1:begin for n:=1 to numusers do begin
  195.     seek (ufile,n);
  196.     read (ufile,u);
  197.     if (u.level<logonlevel) and (length(u.handle)>0) then showuser;
  198.     end;
  199.     writeurec;
  200.     seek (ufile,n);
  201.     write (ufile,u);
  202.     readurec;
  203.     end;
  204.   2:begin
  205.     writehdr ('List Pending Users');
  206.     writeln ('Unum  Handle');
  207.     if asciigraphics in urec.config then writeln ('────  ──────') else writeln ('----  -----');
  208.     for n:=1 to numusers do begin
  209.     seek (ufile,n);
  210.     read (ufile,u);
  211.     if (u.level=defuserlevel) and (length(u.handle)>0) then begin
  212.     tab (strr(n),6); writeln (u.handle); end;
  213.     end; end;
  214.   4:begin
  215. writeln ('C╔═════════════════════════════════════╗Hs');
  216. writeln ('uC║ New User Voting Section             ║Hs');
  217. writeln ('uC╚═════════════════════════════════════╝HHC╔════s');
  218. writeln ('u═════════════════════════════════╗HC║ [L]  s');
  219. writeln ('uList Users in NUV              ║HC║ [Qs');
  220. writeln ('u]  Quit                           ║HC║ [s');
  221. writeln ('uV]  Vote on User(s)                ║Hs');
  222. writeln ('uC║ [?]  View This Menu                 s');
  223. writeln ('u║HC╚═════════════════════════════════════╝');
  224. writeln;
  225.     pause;
  226.            end;
  227.   end
  228. until (hungupon) or (q=3);
  229. end;
  230.  
  231. procedure deleteuser (n:integer);
  232. var u:userrec;
  233. begin
  234.   delallmail (n);
  235.   fillchar (u,sizeof(u),0);
  236.   u.infoform1:=-1;
  237.   u.emailannounce:=-1;
  238.   writeufile (u,n);
  239. end;
  240.  
  241. begin
  242. end.